The present invention generally relates to data processing systems and more particularly relates to a system with a central processing unit which has user-accessible control storage.
Today's continued advancement of computer technology has produced a user-accessible control store extension within a central processor unit (CPU), which extension is sometimes called a writeable control store (WCS). This WCS feature provides a user with extremely powerful hardware instructions that extend as well as enhance the standard CPU software instruction set to achieve optimum CPU performance for software routines critical to a particular user application, and allows them to execute at speeds comparable to the native CPU instructions. They accomplish this by enabling a user to write customized firmware into a CPU to replace repetitive software routines. Much of the speed enhancement derives from the ability of the firmware to perform several simultaneous operations in a single firmware step. The application for the WCS feature varies considerably from one user to another. It enables a microprogrammer to enhance and augment the native CPU firmware to produce the equivalent of a custom built, specialized central processor. Software routines (or programs) designed to run without the WCS feature are unaffected by its presence. With effective firmware instructions, a user can increase the overall performance of the CPU with a minimum conversion of software programs.
Microprogramming and more particularly writeable control store are described in a book entitled "Microprogramming: Principles and Practice," by Samir S. Husson, 1970, Prentice-Hall, Inc. Further, U.S. Pat. No. 4,042,972, issued Aug. 16, 1977, describes a computer system in which a writeable control store is used in addition to the control store located internally in the central processor.
It is accordingly a primary object of the present invention to provide an improved writeable control store for use in a data processing system, which writeable control store is usable in extending the capabilities of the system based on each particular user's requirements.